The present invention relates generally to printing techniques and systems and, more particularly, to printing techniques and systems which track object usage in print jobs.
Many systems have been developed for generating hard copy output of information to users, including various types of printers and printing systems. One common use of printers and printing systems is as an output device for computers. When a user initiates a print function, a print job is created by a computer and sent to the printer for printing. Initiating the print job can, for example, be performed using a document generation program such as Microsoft® Word, PowerPoint®, Adobe® Acrobat® and Quark Express®. The print job may include one or more documents (or pages) and generally is structured as a combination of content and layout. The choice of the objects, their placement and the order in which they are placed, defines a document or page's composition and can be specified using Page Description Languages (PDL). Postscript®, PCL, PDF and PPML are examples of page description languages.
Objects, e.g., graphic or text elements, are commonly reused within a page, document, print job and across jobs. However object reuse is difficult to exploit in printing processes. First, many PDL's do not have an explicit means to express reuse. Even though all PDL's can reference the same object or element numerous times, the processing system does not know at the time it is interpreting and rendering an object whether it will be referenced again. Newer languages (e.g., PPML) and language extensions have introduced a reuse tag to indicate that the object or element will be referenced numerous times. However, document generation applications commonly insert duplicate objects into the PDL even though the PDL supports multiple references as well as explicit reuse tagging. For example, MS Word and PowerPoint instantiate all background information in each page even though nearly all of the background is the same across all the document's pages. Secondly, even when reuse is explicitly expressed in the PDL, the processing applications do not know how many references and where in the job the references will occur. Since these systems have finite storage memory and cannot cache every reused tagged object for the entire duration of the job, reused content will be periodically dropped from the cache and some may not be cached at all.
A prior art example is shown in FIG. 1. Therein a 30-page PDF document is submitted for printing. A print server 10 prepares the print job 12 for printing by converting the PDF document into a raster format which can be read by the printer(s) 14 and 16 using, for example, one or more raster image processors (RIP). In this example, the 30-page PDF document is subdivided into three portions for rendering in order to, for example, speed up the print job processing time by using multiple RIP processors. Note that the technique for subdividing the 30-page print document illustrated in FIG. 1 is simply page order, without regard for object reuse.